Predictive content presentation

ABSTRACT

A system may automatically send a request for a list of programs over a network, obtain, in response to the request, a user profile that includes a list of programs that a viewer has accessed, send information identifying at least one of the programs over the network, and output the at least one of the programs to a preview window of a display.

BACKGROUND

By interacting with a set-top-box (STB), a viewer may select channels orprograms on a television that is connected to the STB, adjust displaycharacteristics of the television, and/or perform other interactivefunctions related to viewing multimedia-type content. A remote controlmay be used to transmit signals that represent key depressions/inputselections to the STB via infrared light.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B illustrate an exemplary device that shows predictivecontent via a picture-in-picture (PIP) window;

FIG. 2 is a block diagram of an exemplary network in which conceptsdescribed herein may be implemented;

FIG. 3 is a block diagram of an exemplary device of FIG. 2;

FIG. 4 is a functional block diagram of an exemplary controller of FIG.2;

FIG. 5 is a functional block diagram of an exemplary content serverdevice of FIG. 2;

FIG. 6 is a functional block diagram of an exemplary log device of FIG.2;

FIG. 7 is a block diagram of an exemplary viewer profile device of FIG.2;

FIG. 8 is a block diagram of an exemplary user profile of FIG. 7;

FIG. 9 is a flowchart of an exemplary process for presenting predictivecontent;

FIG. 10 is a flow chart of an exemplary process for changing a viewinglayout that is associated with predictive content;

FIGS. 11A and 11B illustrate a scenario that involves predictivecontent; and

FIG. 12 illustrates an exemplary split-screen window for presentingpredictive content.

DETAILED DESCRIPTION

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements. As used herein, the term “viewer” may refer to aperson who views, listens, or plays a multimedia program, video, and/ormusic. In addition, as used herein, depending on context, terms such as“watching,” “viewing,” “accessing,” “looking,” “playing” (e.g., playingmusic), “presenting,” “showing,” or “outputting” may pertain to anaudio-visual activity.

FIGS. 1A and 1B illustrate an exemplary device 102 that shows predictivemultimedia content via picture-in-picture (PIP) window 104. As shown,device 102 (e.g., a television) may present a show or a program that isdelivered over a network (not shown) to a viewer.

When a viewer is watching a show/program, the content provider mayreview the viewer's viewing profile (e.g., a list of shows/programs thatthe viewer has accessed/watched), determine the viewer's favoriteshow/program based on the viewing profile, and send a name of thefavorite show/program to device 102 at appropriate moments (e.g., 5minutes before the viewer's favorite program starts).

Device 102 may show the favorite show/program in picture-in-picturewindow (PIP) 104. Furthermore, by using a remote control, the viewer mayswap the contents of PIP window 104 with contents of main viewing area106, as indicated by arrows 108 in FIG. 1A. The result of swapping thecontents of main viewing area 106 with that of PIP window 104 isillustrated in FIG. 1B. Alternatively, the viewer may continue to watchthe original program in main viewing area 106. After few seconds, PIPwindow 104 may vanish or fade away, allowing the viewer to watch ashow/program on device 102 unobstructed.

In the above scenario, by automatically providing the viewer with anoption to watch the viewer's favorite show/program, device 102 and thecontent provider may spare the viewer from scanning through aninteractive program guide or flipping through a myriad of channels tolocate the viewer's favorite show/program.

FIG. 2 is a block diagram of an exemplary network 200 in which conceptsdescribed herein may be implemented. As shown, network 200 may include acontroller 202, a remote control 204, a content presentation device 206,a network 208, a content server device 210, a log device 212, and aviewer profile device 214. In other implementations, network 200 mayinclude additional, fewer, or different devices. For example, network200 may include a content distribution system (e.g., video broadcastsystem), additional controllers, etc. Moreover, one or more devices ofnetwork 200 may perform one or more functions of another device ofnetwork 200. For example, controller 202 and content presentation device206 may be implemented as a single device. In another example, contentserver device 210, log device 212, and/or viewer profile device 214 maybe implemented as one or more devices.

Controller 202 may include a device for receiving commands from remotecontrol 204 and for obtaining and/or playing content on contentpresentation device 206. The content may be obtained from a contentdistribution system (e.g., a video broadcast system) (not shown).Examples of controller 202 may include a set-top box or a component(e.g., a cable card) that plugs-into a host device (e.g., a digitalvideo recorder, a personal computer, a television, etc.) and allows thehost device to display multimedia content (e.g., contents on digitalcable television channels). Although controller 202 can be implementedas different types of devices (e.g., a set-top-box, a computer, adigital video disk (DVD) player, a cable card, etc.), in the following,controller 202 will be described in terms of a set-top box.

Remote control 204 may include a device for issuing wireless commands toand for controlling electronic devices (e.g., a television, a set-topbox, a stereo system, a digital video disc (DVD) player, etc.). Indifferent implementations, in place of remote control 204, other typesof devices (e.g., a wireless keyboard, mouse, a handheld device (e.g.,cell phone), etc.) may be used to control the electronic devices.

Content presentation device 206 may include a device for playingbroadcast media signals and/or signals from controller 202. Examples ofcontent presentation device 206 may include a television, one or morespeakers and a display, a portable digital assistant (PDA) or a cellphone capable of outputting a received video, etc. In the followingparagraphs, content presentation device 206 will be described in termsof a television.

Network 208 may include a fiber-optics network (e.g., passive opticalnetworks (PONS)), an ad hoc network, a local area network (LAN), a widearea network (WAN), a wireless LAN, a metropolitan area network (MAN), acellular network, a public switched telephone network (PSTN), anintranet, the Internet, a satellite-based network, any other network, ora combination of networks. Devices (e.g., controller 202, content serverdevice 210, log device 212, viewer profile device 214, etc.) that areshown in FIG. 2 may connect to network 208 via wireless or wiredcommunication links.

Content server device 210 may include one or more devices for providingpreview information to controller 202 and/or content presentation device206.

Log device 212 may include storage media and a mechanism for writing, onthe storage media, records of viewer activities. In someimplementations, log device 212 may receive information about activitiesof many viewers (e.g., tens of thousands), and may be optimized tohandle high-volume reads and writes.

Viewer profile device 214 may include one or more devices for obtainingviewing patterns of viewers based on information from log device 212 andfor storing the obtained viewing patterns (e.g., a viewer's favoriteprograms). For example, viewer profile device 214 may obtain and store,based on information from log device 212, that John Doe usually watchesbaseball games or The American Idol on Tuesday nights at 8:00 p.m. Suchinformation may be valuable to and/or sold to advertisers that wish tobudget their expenses between competing programs/shows. For example,view profile device may aggregate viewing habits of large number ofviewers that allow advertisers to know which televisions shows/programsare being watched.

FIG. 3 is a block diagram of an exemplary network device 300, which maycorrespond to controller 202, content presentation device 206, contentserver device 210, log device 212, or viewer profile device 214. Asshown, network device 300 may include a processor 302, a memory 304,input/output components 306, a network interface 308, and acommunication path 310. In different implementations, network device 300may include additional, fewer, or different components than the onesillustrated in FIG. 3. For example, network device 300 may includeadditional line interfaces, such as interfaces for receiving andforwarding data.

Processor 302 may include a processor, a microprocessor, an ApplicationSpecific Integrated Circuit (ASIC), a Field Programmable Gate Array(FPGA), and/or other processing logic capable of controlling networkdevice 300. Memory 304 may include static memory, such as read onlymemory (ROM), and/or dynamic memory, such as random access memory (RAM),or onboard cache, for storing data and machine-readable instructions.Memory 304 may also include storage devices, such as a floppy disk, CDROM, CD read/write (R/W) disc, and/or flash memory, as well as othertypes of storage devices.

Input/output components 306 may include a display screen, a keyboard, amouse, a speaker, a microphone, a Digital Video Disk (DVD) writer, a DVDreader, Universal Serial Bus (USB) lines, and/or other types ofcomponents for converting physical events or phenomena to and/or fromdigital signals that pertain to network device 300.

Network interface 308 may include any transceiver-like mechanism thatenables network device 300 to communicate with other devices and/orsystems. For example, network interface 308 may include mechanisms forcommunicating via a network, such as the Internet, a terrestrialwireless network (e.g., a WLAN), a satellite-based network, etc.Additionally or alternatively, network interface 308 may include amodem, an Ethernet interface to a LAN, and/or an interface/connectionfor connecting network device 300 to other devices (e.g., a Bluetoothinterface).

Communication path 310 may provide an interface through which componentsof network device 300 can communicate with one another.

FIG. 4 is a functional block diagram of controller 202. As shown,controller 202 may include a content client 402 and a preview client404. Depending on the implementation, controller 202 may includeadditional components, such as components illustrated in network device300, an operating system (e.g., Linux, Windows, etc.), and application,etc. Furthermore, in some implementations, functionalities of contentclient 402 and/or preview client 404 may be organized in a singlecomponent or more than two components.

Content client 402 may include hardware and/or software for outputtingmultimedia content/data that is received from a content distributionsystem (not shown) to content presentation device 206. Content client402 may receive audio/video data, and, based on the received audio/videodata, may generate audio/video signals that are directed to contentpresentation device 206. Content client 402 may be implemented as astand-alone application or as part of another component, such as abrowser (not shown).

Preview client 404 may include hardware and/or software for sendingmessages regarding user commands to log device 212, sending previewrelated commands to content server device 210, and/or aiding contentclient 402 in presenting viewer's favorite program in a predictivecontent preview area of the display of content presentation device 206.For example, when controller 202 receives a command to change a channel,preview client 404 may send a message to log device 212. Log device 212may record the viewer activity based on the message.

In another example, when controller 202 receives a command to change thechannel from the viewer, preview client 404 may verify whethercontroller 202 is in a predictive content preview mode (e.g., a mode inwhich predictive content is provided to the viewer for a preview). Ifcontroller 202 is in the predictive content preview mode, preview client404 may request that content server device 210 send a list of theviewer's favorite shows/programs. Content client 402 may present theshows/programs in the list in predictive content preview areas (e.g.,PIP window 104), or alternatively, show the list of shows/programs in atext area (e.g., a scrolling text box located in a bottom or sideportion of the screen). Some viewers may find the text box lessdistracting or obtrusive than PIP window 104.

In aiding content client 402 to present the viewer's favoriteshows/programs in PIP windows 104, preview client 404 may provideparameters that are related to PIP windows 104 to content client 402(e.g., locations/sizes/shapes of PIP windows, locations/shapes/sizes oftext windows, etc.). Content client 402 may use the parameters todisplay the user's favorite shows/programs in PIP windows 104. Dependingon the implementation, controller 202 may automatically set suchparameters, or alternatively, preview client 404 may provide a userinterface via which the viewer may input/edit the values.

In some implementations, preview client 404 may aid content client 402in controlling the length of time for which a preview area (e.g., PIPwindow 104) may remain visible on a display of content presentationdevice 206. For example, preview client 404 may cause PIP window 104 toremain on the display for a period of time, such as 3 seconds, andvanish. In another example, preview client 404 may allow the viewer tocause, via remote control 204, PIP window 104 to remain visible, in casethe viewer wishes to track the favorite show/program in PIP window 104.Alternatively, preview client 404 may allow the viewer to cause ashow/program that is shown in PIP window 104 to be recorded, via remotecontrol 204, so that the viewer can view the show/program at a latertime. Pushing a button on remote control 204 to record the show/programmay remove PIP window 104 from the display.

In one implementation, preview client 404 may track whether a viewerrepeatedly cancels/removes PIP window 104 as soon as it appears on thedisplay for a particular show/program. Based on such information,preview client 404 may stop presenting PIP window 104 for the particularshow/program. In a different implementation, this feature may beimplemented via content server device 210.

In another implementation, preview client 404 may allow the viewer toschedule when preview client 404 may request content server device 210to send a list of viewer's favorite shows/programs. For example, theviewer may schedule preview client 404 to automatically request contentserver device 210 to send the list at 9:05 p.m. Eastern Standard Time(EST), five minutes after each hour (to enable the user to changeprograms relatively early in the program, or at any other times. Whenpreview client 404 receives the list of favorite shows/programs fromcontent server device 210, preview client 404 may cause content client402 to show the shows/programs on PIP windows 104 on the display ofcontent presentation device 206.

FIG. 5 is a functional block diagram of content server device 210. Asshown, content server device 210 may include a preview server 502.Depending on the implementation, content server device 210 may includeadditional components, such as components illustrated in network device300, an operating system (e.g., Linux, Windows, HP-UX, etc.), andapplication, etc.

Preview server 502 may include hardware and/or software for performingtasks that are associated with a list of favorite shows/programs (e.g.,predictive content). For example, content server device 210 may maintaina list of viewer's favorite shows/programs, obtain the list from viewerprofile device 214, and/or periodically send the list to preview client404. In another example, preview server 502 may track whether a viewercancels/removes PIP window 104 as soon as it appears on the display fora particular show/program. Based on such information, preview server 502may withhold sending preview information for the particularshow/program.

FIG. 6 is a functional block diagram of log device 212. As shown, logdevice 212 may include a log 602 of viewer activities. As further shown,log 602 may include log records 604-1 through 604-N (hereinaftercollectively referred to as log records 604 and individually as logrecord 604-x), each of which may be associated with a viewer. Althoughnot illustrated in FIG. 6, log device 212 may include additionalcomponents, such as components illustrated in network device 300, anoperating system (e.g., Linux, Windows, HP-UX, etc.), and application,etc.

When log device 212 receives, from preview client 404, a message thatindicates a iviewers' activity, log device 212 may record the vieweractivity and store the record in log 602. In some implementations, whenmore than a threshold amount of log records 604 accumulate in log 602, anumber of oldest log records 604 may be archived and/or moved to anoff-line storage.

As illustrated by log record 604-1, each log record 604-x may include auser identifier (ID) field 606 and a viewer record field 608. Useridentifier field 606 may identify a viewer whose activity is logged bylog record 604-x. Viewer record field 608 may identify a channel or aprogram that the viewer accessed, as well as the time at which theviewer accessed the channel or the program.

FIG. 7 is a block diagram of viewer profile device 214. As shown, viewerprofile device 214 may include viewer profile database 702. As furthershown, viewer profile database 702 may include profile records 704-1through 704-N (hereinafter collectively referred to as profile records704 and individually as profile record 704-x), each of which may beassociated with a particular viewer or content client 402. Although notillustrated in FIG. 7, viewer profile device 214 may include additionalcomponents, such as components illustrated in network device 300, anoperating system (e.g., Linux, Windows, HP-UX, etc.), and application,etc.

In FIG. 7, number of profile records 704 may increase or decrease, asadditional viewers subscribe to or unsubscribe from services that areprovided by content server device 210. In addition, profile records 704may be updated, as viewer r activities are logged at log device 212, andas their viewing patterns change.

As further shown in FIG. 7, profile record 704-x may include a useridentifier (ID) 706 and a user profile 708. User identifier 706 mayidentify a viewer whose viewing pattern is provided by profile record704-x. User profile 708 may provide a summary of the viewer's viewingpattern.

FIG. 8 is a block diagram of exemplary user profile 708. As shown, userprofile 708 may include days-of-week pattern records 802-1 through802-7. Depending on the implementation, user profile 708 may beorganized in one of many different ways. For instance, user profile 708may be organized by days-of-month. In some implementations, user profile708 may include multiple days-of-week patterns, for different seasons(e.g., the spring and the fall).

As further shown, each of days-of-week pattern records 802-1 through802-7 may include entries, such as entries 804 and 806. Entry 804/806may include a time stamp and a list of shows/programs. Entry 804/806 mayalso include, for each of the shows/programs, an aggregate amount oftime that the viewer has watched the shows/programs. For example, asshown in FIG. 8, entry 804 may include a time stamp of 8:00 p.m. EST,and may indicate that the viewer has watched Lost for 390 minutes andThe American Idol for 200 minutes. In a different implementation, eachentry (e.g., entry 804) may include, in place of the names of actualshows/programs, a different type of identifier (e.g., a number oralphanumeric code that uniquely identifies a particular a show/program).

In some implementations, each entry may not include the number ofminutes that the viewer watched a particular show/program, but a totalnumber of times the viewer accessed the particular show/program.

Depending on the implementation, viewer profile device 214 may generateuser profile 708 based on a request from content server device 210 orbased on a schedule. In either case, viewer profile device 214 mayexamine log 602 and identify log records 604 that are associated with aparticular viewer. For example, when viewer profile device 214 receivesa request to provide user profile 708 for user “Jane Smith,” viewerprofile device 214 may retrieve log records 604 that are associated with“Jane Smith.”

For each record 604-x, by extracting a channel number and the time thechannel number was written into log record 604-x, and by looking up thechannel number and the time in a program guide, viewer profile device214 may identify a corresponding show/program that the viewer watched atthe time. In addition, viewer profile device 214 may determine thenumber of minutes that the viewer watched show/program or the number oftimes the viewer accessed the show/program based on log records 604 andthe program guide.

The above paragraphs describe system elements that are related todevices and/or components for presenting predictive content. FIG. 9 is aflow diagram of a process 900 that may be performed by one or more ofthese devices and/or components.

As shown in FIG. 9, process 900 may begin at block 902, where apredictive content preview mode may be entered (block 902). As usedherein, the term “predictive content preview mode” may refer to a statein which controller 202 may access content based on the viewer's pastviewing pattern, and present the content to the viewer for a preview.Controller 202 may enter the predictive content preview mode in responseto viewer input (e.g., input via remote control 204). Alternatively,controller 202 may be set to the predictive content preview mode as adefault and a viewer may turn off the predictive content preview modevia remote control 204.

A request for predictive content may be received (block 904). Forexample, content server device 210 may receive a request for predictivecontent from controller 202. Controller 202 may send the request whenthe viewer selects a particular channel while controller 202 is in thepredictive content preview mode or at particular timespre-selected/scheduled by the viewer. Controller 202 may send therequest over network 208 to content server device 210 and a messageindicating that the viewer has selected a particular program/show to logdevice 212.

When content server device 210 receives the request for predictivecontent from controller 202, content server device 210 may issue arequest, to viewer profile device 214, to obtain user profile 708 thatis associated with the viewer.

In a different implementation, content server device 210 may obtain userprofile 708 without receiving a request from controller 202. Thisfeature may be driven by show/program schedule (e.g., when ashow/program is about to end, content server device 210 make a requestfor user profile 708), which may be stored at either controller 202 orat content server device 210, as part of push mechanism.

User profile 708 may be obtained (block 906). For example, viewerprofile device 214 may obtain user profile 708 in response to therequest for user profile 708 associated with the viewer from contentserver device 210. When viewer profile device 214 receives the request,viewer profile device 214 may search for user profile 708 in profiledatabase 702 and retrieve user profile 708 that is recent or that meetsa set of criteria (e.g., a user profile for the fall of 2007).

If viewer profile device 214 is unable to find an appropriate userprofile 708, viewer profile device 214 may issue a request to log device212 to obtain log records 604 that are associated with the viewer. Therequest may include a user identifier and other information that logdevice 212 may use to retrieve log records 604. For example, the requestmay specify a user identifier of 7032394548121 and a time window thatspans April-June of 2007. In response, log device 212 may return logrecords 604 whose user identifier fields 606 includes the value7032394548121 and whose viewer record field 608 includes a time stampdated within the time window April-June of 2007. In someimplementations, viewer profile device 214 may specify time windowsbased on seasons or years that may have a bearing on viewer's currentviewing habits.

When viewer profile device 214 receives log records 604 from log device212, viewer profile device 214 may determine amounts of time that theviewer may have spent viewing different shows/programs. To perform thepreceding, for each log record 604-x, viewer profile device 214 maycalculate an amount of time that elapsed between the time specified by atime stamp within log record 604-x and another time specified by a timestamp within a subsequent log record. Furthermore, viewer profile device214 may identify a show/program which the viewer watched, based on achannel number and a time stamp in viewer record field 608 of log record604-x.

For example, assume that log device 212 provides log records 604-1 and604-2, both of which pertain to viewer A, to viewer profile device 214.In addition, assume that log record 604-1 includes a time stamp of May2, 2008 18:00 and a channel number 54, and log record 604-2 includes atime stamp of May 2, 2008 19:00 and a channel number 57. Based on thetime stamps, viewer profile device 214 may determine that viewer Awatched channel 54 for 60 minutes. In addition, viewer profile device214 may identify the show/program that was on channel 54 at 18:00-19:00on May 2, 2008 by looking up the channel and the time in a programguide.

In different implementations, as explained above with reference to userprofile 708, user profile 708 may indicate a number of times the vieweraccessed each of the shows/programs. In such a case, viewer profiledevice 214 may retrieve or tally the number of times that the vieweraccessed each of the shows/programs based on log records 604. Viewerprofile device 214 may also implement mechanisms to avoid registeringchannel surfing activities as valid viewer accesses. For example, if aprogram was not watched/accessed for at least a pre-determined duration(e.g., 5 minutes), that program will not be registered in viewer profiledevice 114.

Once viewer profile device 214 determines, an amount of time or a numberof times that the viewer accessed each of the shows/programs, viewerprofile device 214 may create a list of the shows/programs. In someimplementations, viewer profile device 214 may organize the list ofshows/programs based on day-of-the-week, to obtain user profile 708, orbased on another scheme (e.g., rank the shows/programs based on thenumber of times the viewer accessed each show without regard today-of-the-week).

Shows/programs in user profile 708 may be ranked (block 908). Forexample, viewer profile device 214 may rank the shows/programs in userprofile 708 based on the amount of time the viewer spent watching eachshow/program. In a different implementation, viewer profile device 214may rank the shows/program based on the number of times that eachshow/program has been accessed. Viewer profile device 210 may send alist of ranked shows/programs to content server device 210.

A list of ranked shows/programs may be sent to controller 202 (block910). For example, content server device 210 may send a list of rankedshows/programs to controller 202.

The highest ranked shows/programs may be presented in predictive contentviewing areas (block 912). For example, content client 402 may presentthe show/program that is requested by the viewer in main viewing area106 and the highest ranked show in PIP window 104. If the highest rankedshow/program is as same as the requested program/show, content client402 may present the second highest ranked show in PIP window 104.

In some implementations, the viewer may be able to select favorite showsvia a user interface on controller 202, and these favorite shows may beshown in predictive content viewing areas, regardless of the viewer'spast viewing habits. For example, if the viewer indicates that theviewer likes to watch American Idol, American Idol may be shown in PIPwindow 104 when American Idol is broadcast.

FIG. 10 is a flow diagram of an exemplary process 1000 for modifying aviewing layout that is associated with predictive content. At block1002, a command from the viewer to change a layout of predictive contentviewing areas may be received (e.g., PIP window 104) (block 1002). Forexample, controller 202 may receive a command from the viewer via remotecontrol 204. The command may instruct, for example, controller 202 toswap contents of PIP window 104 with that of main viewing area 106. Inanother example, the command may instruct controller 202 to close PIPwindow 104. In yet another example, the command may instruct controller202 to record a show/program that is being previewed in PIP window 104.Controller 202 may close PIP window 104 in response to the recordcommand.

The layout may be modified (block 1004). For example, if the commandindicates that the predictive content is no longer to be displayed,controller 202 may remove PIP window 104 from the display of contentpresentation device 206. In another example, controller 202 may swap thecontents of the predictive content viewing area and that of the mainviewing area.

The following example, with reference to FIGS. 11A and 11B, illustratesthe processes for presenting predictive content. The example isconsistent with exemplary processes 900 and 1000 described above withreference to FIG. 9 and FIG. 10.

In FIG. 11A, assume that a set-top box 1102 (e.g., controller 202) isattached to a television 1104, set-top-box 1102 is in a predictivecontent preview mode, and John, a user, uses a remote control 1106 tocontrol set-top box 1102. In addition, assume that John's two favoriteshows/programs are Rangers hockey games and the Bay Watch televisionprogram, both scheduled to be on at 9:00 p.m. on a Thursday night.

On a Thursday night, at 8:30 p.m., John begins to watch Pajama Party onchannel 19. As John becomes absorbed in the movie, John forgets that theRangers game and Bay Watch are being broadcast at 9:00 p.m.

At 9:00 p.m., when a Rangers game and Bay Watch are both broadcast,set-top box 1102 sends a scheduled request for predictive content tocontent server device 210. Content server device 210 retrieves userprofile 708 from viewer profile device 214 and determines that Johnlikes to watch a Rangers game and/or Bay Watch.

Content server device 210 sends a message to set-top box 1102 overnetwork 208, indicating that Rangers game and Bay Watch are John'sfavorite shows. Set-top box 1102 opens PIP window 1108 for Rangers gameand PIP window 1110 for Bay Watch within main viewing area 1106, whichis showing the show currently selected by John (i.e., Pajama Party inthis example).

When John sees the Rangers game in PIP 1108, John presses a swap buttonon remote control 1106. Set-top box 1102 then switches to the Rangersgame in main viewing area 1112 of television 1104, as shown in FIG. 11B,and closes PIP windows 1108 and 1110.

In the above example, the viewer may receive suggestions aboutshows/programs from content server device 210 via PIP windows 1108 and1110 based on past viewing habits. By providing the viewer with anoption to watch the viewer's favorite show/program, device 1104 and thecontent provider may spare the viewer from scanning through aninteractive program guide or flipping through channels to locate theviewer's favorite show/program.

The foregoing description of implementations provides illustration, butis not intended to be exhaustive or to limit the implementations to theprecise form disclosed. Modifications and variations are possible inlight of the above teachings or may be acquired from practice of theteachings.

For example, while FIGS. 1A, 1B, and 11A show a predictive contentviewing area as PIP windows 104, 1108, and 1110, different arrangementsmay be used to display predictive content. For instance, FIG. 12 shows asplit-screen predictive content viewing area. As shown, display 1202 maybe split into a main viewing area 1204 and a preview area 1206. Theviewer may select or activate an audio from either main viewing area1204 or preview area 1206, by pushing a left key or right key (notshown) on remote control 204.

In another example, while predictive content has been described as beingsent to controller 202 when the viewer changes a channel or inaccordance with a schedule, in a different implementation, contentserver device 210 may send an alert that lists the viewer's favoriteshows before the favorite shows are actually broadcast.

In addition, while series of blocks have been described with regard toan exemplary processes illustrated in FIGS. 9 and 10, the order of theblocks may be modified in other implementations. In addition,non-dependent blocks may represent acts that can be performed inparallel to other blocks.

It will be apparent that aspects described herein may be implemented inmany different forms of software, firmware, and hardware in theimplementations illustrated in the figures. The actual software code orspecialized control hardware used to implement aspects does not limitthe invention. Thus, the operation and behavior of the aspects weredescribed without reference to the specific software code—it beingunderstood that software and control hardware can be designed toimplement the aspects based on the description herein.

Further, certain portions of the implementations have been described as“logic” that performs one or more functions. This logic may includehardware, such as a processor, a microprocessor, an application specificintegrated circuit, or a field programmable gate array, software, or acombination of hardware and software.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the invention. In fact, many of these features may becombined in ways not specifically recited in the claims and/or disclosedin the specification.

No element, act, or instruction used in the present application shouldbe construed as critical or essential to the implementations describedherein unless explicitly described as such. Also, as used herein, thearticle “a” is intended to include one or more items. Where one item isintended, the term “one” or similar language is used. Further, thephrase “based on” is intended to mean “based, at least in part, on”unless explicitly stated otherwise.

1. A method comprising: receiving, from a control device, over anetwork, a request for a list of media programs associated with a user;retrieving, responsive to the request, log records identifying a channelnumber and a corresponding time of day for a plurality of media programsthat have been presented via one or more devices associated with theuser; identifying, using a program guide, one or more media programs ofthe plurality of media programs; determining a number of instances inwhich the one or more media programs have been presented via the one ormore devices for a period of time exceeding a particular thresholdamount of time; generating, based on the number of instances, a rankedlist of the one or more media programs; identifying, from the rankedlist, at least a highest ranked media program based on the ranked list,of the one or more media programs, corresponding to a current time slotor an upcoming time slot; and sending, over the network, to the controldevice, information associated with the at least highest ranked mediaprogram, wherein the control device is configured to output the at leasthighest ranked media program to a preview window, including apicture-in-picture in a main viewing area of a display, of the one ormore devices, when content other than the at least one media program isbeing presented via the main viewing area during the current time slot.2. The method of claim 1, wherein the control device is furtherconfigured to: remove the picture-in-picture window after a particularamount of time from the main viewing area of the display; or remove thepicture-in-picture window and record contents of the picture-in-picturewindow in response to input received via a remote control.
 3. The methodof claim 1, further comprising: scheduling sending of the informationassociated with the at least highest ranked media program at aparticular time.
 4. The method of claim 1, wherein the control device isfurther configured to: output the information associated with the atleast one media program to the picture-in-picture window or asplit-screen window on the display; or output a portion of theinformation associated with the at least highest ranked media program toa text box on the display.
 5. The method of claim 1, wherein the controldevice is further configured to: exchange content in the main viewingarea of the display with content in the preview window; or select, basedon input from the viewer, either an audio that is associated withcontent in the main viewing area or an audio that is associated withcontent in the preview window.
 6. The method of claim 5, wherein thecontrol device is further configured to: send a message to a log deviceindicating that a particular media program is being presented via achannel of the one or more devices at a particular time.
 7. The methodof claim 1, wherein the control device is further configured to: enter amode in which the request is automatically generated by the controldevice when a command to change a channel of the one or more devices isreceived.
 8. A system comprising: a database that includes loggedinformation identifying a plurality of programs that have beenpresented, via one or more devices associated with a user, in a numberof different instances; and a server to: receive a request, over anetwork, from a controller, for a list of one or more programs, of theplurality of programs, corresponding to a scheduled time slot,aggregate, based on the logged information, an amount of time associatedwith the number of different instances, for each of the one or moreprograms, generate, based on the aggregated amounts of time, a rankingof the list of one or more programs, identify at least a highest-rankedprogram based on the rankings, generate information associated with theidentified program, and send the information associated with theidentified program to the controller over the network, wherein thecontroller is configured to: send the request to the server; receive theinformation associated with the identified program; and present, whencontent other than the identified program is being presented via the oneor more devices, the identified program in a preview window including apicture-in-picture window.
 9. The system of claim 8, wherein thecontroller is further configured to: enter a predictive content previewmode in which the controller automatically sends the request for thelist of one or more programs to the server.
 10. The system of claim 8,wherein the controller is further configured to: accept, from the user,input to schedule receipt of the information associated with theidentified program.
 11. The system of claim 8, wherein the controllerincludes at least one of: a set-top box; a cable card; a computer; or adigital video disk (DVD) player.
 12. The system of claim 8, wherein thesystem further includes: a log device to record information identifyingchannels over which the one or more devices receive the plurality ofprograms.
 13. The system of claim 12, wherein the log device isconfigured to: receive a message from the controller indicatingnavigation among the channels.
 14. The system of claim 8, wherein thenetwork includes: a passive optical network (PON).
 15. A methodcomprising: generating a list of media programs that have previouslybeen presented via at least one device associated with a user; rankingthe media programs, relative to each other, based on one of: a totalnumber of different instances in which respective media programs havebeen presented, via the at least one device, for a period of timeexceeding a particular amount of time, or an aggregated amount of timeassociated with a duration of the total number of different instances,for the respective media programs; identifying, from the ranked list, atleast a highest-ranked media program and a second highest-ranked mediaprogram; determining that the highest-ranked media program is currentlybeing presented via a first device associated with the user; andproviding, when the first device is currently presenting thehighest-ranked media program, only information related to the secondhighest-ranked media program from the ranked list, for presentationconcurrently with the highest-ranked media program via the first device.